/*
* 
* Fichier source projet intel Acceler8 sous license GNU GPL v3.
* Voir http://www.gnu.org/copyleft/gpl.html pour plus d'informations
* La license est egalement disponible dans le repertoire /doc
* 
* Cree le : samedi 12 novembre 2011 à 13 : 51.
* Auteurs : Axel MOINET et Arnaud DURAND.
* 
* Nom de fichier : mainthreadfunctions.cpp
* Chemin du fichier : ./src/functions/mainthreadfunctions.cpp
* 
* Description :
* 
*/

#include "mainthreadfunctions.h"

void startReadFile(lectureFichier *reader) {
	reader->launchPipeline();
	reader->clearPipeline();
}

void startCompute(pipelineResolution *p_pipeline) {
	p_pipeline->launchPipeline();
	p_pipeline->clearPipeline();
}

/*void startComputeCGH(cgh *cghCompute) {
	//Lancer le thread de calcul des Cgh
	//cgh *cghCompute = static_cast<cgh*>(p_cghCompute);
	cghCompute->computeAllCgh();
	//return NULL;
}*/

int printFinalResults(struct result *p_resultat) {
	std::cout << p_resultat->a << " " << p_resultat->g << " " << p_resultat->b << " " << p_resultat->h << std::endl;
	return 0;
}

void* createReadThread(void *p_thread) {
	threadPrincipal *thread = static_cast<threadPrincipal*>(p_thread);
	lectureFichier *lecteur;
	lecteur = new lectureFichier(thread->filepath, thread->nbJetonsLecture, thread);
	startReadFile(lecteur);
	delete lecteur;
	pthread_exit(NULL);
	return NULL;
}

void* createComputeThread(void *p_thread) {
	threadPrincipal *thread = static_cast<threadPrincipal*>(p_thread);
	pipelineResolution *pipeline;
	pipeline = new pipelineResolution(thread, thread->nbJetonsCalcul);
	startCompute(pipeline);
	delete pipeline;
	pthread_exit(NULL);
	return NULL;
}
